package com.luofan.service;

import com.github.pagehelper.PageInfo;
import com.luofan.common.result.ResultCodeEnum;
import com.luofan.entity.dto.PageDTO;
import com.luofan.entity.po.Notice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.luofan.entity.vo.NoticeUserVO;
import com.luofan.entity.vo.NoticeVO;

import java.util.List;

/**
 * <p>
 * 公告表 服务类
 * </p>
 *
 * @author 
 * @since 2025-03-26
 */
public interface NoticeService extends IService<Notice> {

//    发布通知
    ResultCodeEnum createNotice(Notice notice);

    //获取所有公告的列表
    PageInfo<NoticeVO> listAllNotice(PageDTO pageDTO);

    //根据用户id获取公告列表
    PageInfo<NoticeVO> listNoticeByUserId(Long id, PageDTO pageDTO);

    //用户确认收到公告
    void confirmReceiveNotice(Long noticeId);

    //通过公告id获取所有收到和没收到公告的用户信息(姓名,邮箱,教研室名称)列表
    NoticeUserVO listNoticeUserByNoticeId(Long id);

}
